package com.cl.pattern.template;

/**
 * 模板方法模式
 *
 * @Description
 * @Author Small
 * @Date 2020/6/3 17:18
 * @Version 1.0
 **/
public abstract class CookTemplate {

    /**
     * 第一步：锅内倒油
     */
    protected abstract void putOil();

    /**
     * 第二步：放鸡蛋
     */
    protected abstract void putEgg();


    /**
     * 第三步：放入番茄
     */
    protected abstract void putTomato();

    /**
     * 第四步：淋香油增味
     */
    protected abstract void putSesameOil();

    /**
     * 第五步：撒葱花点缀
     */
    protected abstract void putGreenOnion();


    /**
     * 做饭
     *
     * 封装了做饭的具体步骤
     *
     * @return
     */
    public void cook() {
        // 1、第一步：锅内倒油
        putOil();
        // 2、第二步：放鸡蛋
        putEgg();
        // 3、第三步：放西红柿
        putTomato();
        // 4、第四步：淋香油增味
        putSesameOil();
        // 5、第五步：撒葱花点缀
        putGreenOnion();

        System.out.println("一盘番茄鸡蛋做好啦");
    }
}
